[INFO] cloning repository https://github.com/shahuwang/Rustunnel
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shahuwang/Rustunnel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshahuwang%2FRustunnel", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshahuwang%2FRustunnel'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 208657ea45aea8a7d7284d3b5d9aedf252ebdd95
[INFO] checking shahuwang/Rustunnel against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshahuwang%2FRustunnel" "/workspace/builds/worker-11/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/shahuwang/Rustunnel on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/shahuwang/Rustunnel
[INFO] finished tweaking git repo https://github.com/shahuwang/Rustunnel
[INFO] tweaked toml for git repo https://github.com/shahuwang/Rustunnel written to /workspace/builds/worker-11/source/Cargo.toml
[INFO] crate git repo https://github.com/shahuwang/Rustunnel already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-11/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 964467af8c71f927c26d3820f2d956d7e8fc7fdc783bd5028dd79ec575e933dd
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "964467af8c71f927c26d3820f2d956d7e8fc7fdc783bd5028dd79ec575e933dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "964467af8c71f927c26d3820f2d956d7e8fc7fdc783bd5028dd79ec575e933dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "964467af8c71f927c26d3820f2d956d7e8fc7fdc783bd5028dd79ec575e933dd", kill_on_drop: false }`
[INFO] [stdout] 964467af8c71f927c26d3820f2d956d7e8fc7fdc783bd5028dd79ec575e933dd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d63e08910274541678f5f17cfaeb5e67597cda4d8677773a2b867370380e85a8
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "d63e08910274541678f5f17cfaeb5e67597cda4d8677773a2b867370380e85a8", kill_on_drop: false }`
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]     Checking rustc-serialize v0.3.24
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking bincode v1.3.1
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]     Checking Rustunnel v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved imports `std::io::Chars`, `std::io::Tee`
[INFO] [stdout]  --> src/conn.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |                 Chars, Chain, Tee, Take,
[INFO] [stdout]   |                 ^^^^^         ^^^ no `Tee` in `io`
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 no `Chars` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bincode::SizeLimit`
[INFO] [stdout]   --> src/conn.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use bincode::SizeLimit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ no `SizeLimit` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bincode::rustc_serialize`
[INFO] [stdout]   --> src/conn.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | use bincode::rustc_serialize::{encode, decode_from, DecodingResult};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `bincode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `chars` is not a member of trait `Read`
[INFO] [stdout]    --> src/conn.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn chars(self) -> Chars<Self> where Self: Sized{
[INFO] [stdout] 101 | |         unimplemented!();
[INFO] [stdout] 102 | |         // self.reader.chars()
[INFO] [stdout] 103 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `tee` is not a member of trait `Read`
[INFO] [stdout]    --> src/conn.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | /     fn tee<W:Write>(self, out: W) -> Tee<Self, W> where Self:Sized{
[INFO] [stdout] 113 | |         unimplemented!();
[INFO] [stdout] 114 | |         // self.reader.tee(out)
[INFO] [stdout] 115 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/client.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/client.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self as stdResult`
[INFO] [stdout]   --> src/conn.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::result::Result::{self as stdResult, Ok, Err};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]   --> src/conn.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, Mutex};
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/hub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `LINK_STATUS` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum LINK_STATUS{
[INFO] [stdout]   |      ^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkStatus`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_DATA` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     LINK_DATA,
[INFO] [stdout]   |     ^^^^^^^^^ help: convert the identifier to upper camel case: `LinkData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CREATE` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     LINK_CREATE,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     LINK_CLOSE,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkClose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE_RECV` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     LINK_CLOSE_RECV,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCloseRecv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE_SEND` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     LINK_CLOSE_SEND
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCloseSend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `std::io::Chars`, `std::io::Tee`
[INFO] [stdout]  --> src/conn.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |                 Chars, Chain, Tee, Take,
[INFO] [stdout]   |                 ^^^^^         ^^^ no `Tee` in `io`
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 no `Chars` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bincode::SizeLimit`
[INFO] [stdout]   --> src/conn.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use bincode::SizeLimit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ no `SizeLimit` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bincode::rustc_serialize`
[INFO] [stdout]   --> src/conn.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | use bincode::rustc_serialize::{encode, decode_from, DecodingResult};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ could not find `rustc_serialize` in `bincode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `chars` is not a member of trait `Read`
[INFO] [stdout]    --> src/conn.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn chars(self) -> Chars<Self> where Self: Sized{
[INFO] [stdout] 101 | |         unimplemented!();
[INFO] [stdout] 102 | |         // self.reader.chars()
[INFO] [stdout] 103 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `tee` is not a member of trait `Read`
[INFO] [stdout]    --> src/conn.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | /     fn tee<W:Write>(self, out: W) -> Tee<Self, W> where Self:Sized{
[INFO] [stdout] 113 | |         unimplemented!();
[INFO] [stdout] 114 | |         // self.reader.tee(out)
[INFO] [stdout] 115 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/client.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/client.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self as stdResult`
[INFO] [stdout]   --> src/conn.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::result::Result::{self as stdResult, Ok, Err};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]   --> src/conn.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, Mutex};
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/hub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `LINK_STATUS` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum LINK_STATUS{
[INFO] [stdout]   |      ^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkStatus`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_DATA` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     LINK_DATA,
[INFO] [stdout]   |     ^^^^^^^^^ help: convert the identifier to upper camel case: `LinkData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CREATE` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     LINK_CREATE,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     LINK_CLOSE,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkClose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE_RECV` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     LINK_CLOSE_RECV,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCloseRecv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINK_CLOSE_SEND` should have an upper camel case name
[INFO] [stdout]  --> src/hub.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     LINK_CLOSE_SEND
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LinkCloseSend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]   --> src/link_buffer.rs:31:23
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn put(&mut self, data: [u8]) -> bool{
[INFO] [stdout]    |                       ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]    = help: unsized locals are gated as an unstable feature
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn put(&mut self, data: &[u8]) -> bool{
[INFO] [stdout]    |                             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      expected `&[Box<[u8]>]`, found slice
[INFO] [stdout]    |                                      help: consider borrowing here: `&self.buf[self.start..self.end]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&[Box<[u8]>]`
[INFO] [stdout]                   found slice `[Box<[u8]>]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:39:37
[INFO] [stdout]    |
[INFO] [stdout] 39 |               if self.end > self.start{
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout]    | |_____________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | /             if self.end > self.start{
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout]    | |_____________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | /         if (self.end + 1) % old_cap == self.start{
[INFO] [stdout] 38 | |             let buf: Vec<Box<[u8]>> = Vec::with_capacity(old_cap * 2);
[INFO] [stdout] 39 | |             if self.end > self.start{
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout] 42 | |         }
[INFO] [stdout]    | |_________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0407, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Rustunnel`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]   --> src/link_buffer.rs:31:23
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn put(&mut self, data: [u8]) -> bool{
[INFO] [stdout]    |                       ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]    = help: unsized locals are gated as an unstable feature
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn put(&mut self, data: &[u8]) -> bool{
[INFO] [stdout]    |                             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      expected `&[Box<[u8]>]`, found slice
[INFO] [stdout]    |                                      help: consider borrowing here: `&self.buf[self.start..self.end]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&[Box<[u8]>]`
[INFO] [stdout]                   found slice `[Box<[u8]>]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:39:37
[INFO] [stdout]    |
[INFO] [stdout] 39 |               if self.end > self.start{
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout]    | |_____________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | /             if self.end > self.start{
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout]    | |_____________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/link_buffer.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | /         if (self.end + 1) % old_cap == self.start{
[INFO] [stdout] 38 | |             let buf: Vec<Box<[u8]>> = Vec::with_capacity(old_cap * 2);
[INFO] [stdout] 39 | |             if self.end > self.start{
[INFO] [stdout] 40 | |                buf.extend_from_slice(self.buf[self.start..self.end]); 
[INFO] [stdout] 41 | |             }
[INFO] [stdout] 42 | |         }
[INFO] [stdout]    | |_________^ expected `bool`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0407, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "d63e08910274541678f5f17cfaeb5e67597cda4d8677773a2b867370380e85a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d63e08910274541678f5f17cfaeb5e67597cda4d8677773a2b867370380e85a8", kill_on_drop: false }`
[INFO] [stdout] d63e08910274541678f5f17cfaeb5e67597cda4d8677773a2b867370380e85a8
